#include "mainwindow.h"
#include "ui_mainwindow.h"
#include  <QDialog>
#include <QFileDialog>
#include <QColorDialog>
#include <QFontDialog>
#include <QMessageBox>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);


    connect(ui->Slider1, &QSlider::valueChanged,[this](int _value){
        ui->Bar1->setValue(_value + 1);
    });

    // 对话框
    // 1、模态对话框 (阻塞式创建对话框)（就是窗口激活时无法对其他窗口做任何操作）
    // 2、非模态对话框 （非阻塞式）（与上相反）

    connect(ui->b1, &QPushButton::clicked, [this](){

        // 不能用new的方式创建，因为其只有在主窗口关闭才能释放
        // QDialog* dialog = new QDialog(this);
        QDialog dialog(this); // 引头文件

        dialog.setFixedSize(200,200);

        dialog.exec(); // 进入消息捕捉循环, 出作用域销毁
    });

    // 非阻塞:
    connect(ui->b2, &QPushButton::clicked,[this](){
        auto dialog = new QDialog(this);
        dialog->setFixedSize(200,200);
        dialog->show();
        dialog->setAttribute(Qt::WA_DeleteOnClose); // 关闭时删除
    });


    //***********************************************************************
    // 系统内置对话框
    // 文件对话框 <QFileDialog>
    // 颜色对话框 <QColorDialog>
    // 文字对话框 <QFontDialog>
    // 消息对话框 <QMessageBox> (包含警告，普通，错误框)


}

MainWindow::~MainWindow()
{
    delete ui;
}

